package com.zdw.oauth.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zdw.oauth.dto.*;
import com.zdw.oauth.entity.PermissionEntity;

import java.util.List;

/**
 * <p>
 * 权限 服务类
 * </p>
 *
 * @author 卓德文
 * @since 2023-07-17
 */
public interface PermissionService {

    /**
     * 新增权限
     *
     * @param dto
     * @return
     */
    boolean add(PermissionAddDto dto);

    /**
     * 编辑权限
     *
     * @param dto
     * @return
     */
    boolean update(PermissionUpdDto dto);

    /**
     * 删除权限(批量)
     *
     * @param permissionIdList
     * @return
     */
    boolean delete(List<Integer> permissionIdList);

    /**
     * 查询权限信息
     *
     * @param id
     * @return
     */
    PermissionEntity select(int id);

    /**
     * 分页查询权限列表
     *
     * @param dto
     * @return
     */
    IPage<PermissionEntity> page(PermissionSelectDto dto);

    /**
     * 查询权限树
     *
     * @return
     */
    List<PermissionEntity> tree();

    /**
     * 给角色分配权限
     * @param dto
     * @return
     */
    Boolean grantPermission(RolePermissionDto dto);

}
